home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / MATH1 / TSTSORT.PAS < prev   
Pascal/Delphi Source File  |  1985-04-03  |  1KB  |  76 lines

  1. program tstsort;        { -> 172 }
  2. { test speed of sorting routine }
  3.  
  4. const    max    = 1000;
  5.  
  6. type    ary    = array[1..300] of real;
  7.  
  8. var    x    : ary;
  9.     n,i    : integer;
  10.     seed    : real;
  11.     first    : boolean;
  12.  
  13. external procedure cls;
  14.  
  15. {$I RANDOM.LIB }
  16.  
  17. procedure print;
  18. var    i     : integer;
  19.  
  20. begin
  21.   writeln;
  22.   for i:=1 to n do
  23.     begin
  24.       write(x[i]:7:2);
  25.       if (i mod 10)=0 then writeln
  26.     end
  27. end;
  28.  
  29. procedure { bubble- } sort(var a: ary; n: integer);
  30. var    i,j    : integer;
  31.     hold    : real;
  32.  
  33. begin        { procedure sort }
  34.   for i:=1 to n-1 do
  35.     for j:=i+1 to n do
  36.       begin
  37.     if a[i]>a[j] then
  38.       begin
  39.         hold:=a[i];
  40.         a[i]:=a[j];
  41.         a[j]:=hold
  42.       end
  43.     end        { for }
  44. end;        { procedure sort }
  45.  
  46. begin        { MAIN program }
  47.   cls;
  48.   seed:=4.0;
  49.   repeat
  50.     repeat
  51.       writeln;
  52.       write('How many points? ');
  53.       readln(n)
  54.     until n<=max;
  55.     if first then first:=false else cls;
  56.     for i:=1 to n do
  57.       x[i]:=100*random(0);
  58.     print;
  59.     write(chr(7));
  60.     sort(x,n);        { random numbers }
  61.     write(chr(7));
  62.     print;
  63.     writeln(' random ');
  64.     write(chr(7));
  65.     sort(x,n);        { sorted numbers }
  66.     write(chr(7));
  67.     print;
  68.     writeln(' sorted ');
  69.     for i:=1 to n do
  70.       x[i]:=n+1-i;
  71.     write(chr(7));
  72.     print;
  73.     writeln(' reversed ');
  74.   until n<5
  75. end.
  76.